#include <hi_types_base.h>
#include "iot_gpio.h"
#include "iot_pwm.h"
#include "hi_gpio.h"
#include "hi_io.h"

#include "hi_pwm.h"
#include "hi_time.h"

#include "ohos_init.h"  // 用于初始化服务(services)和功能(features)
#include "cmsis_os2.h"  // CMSIS-RTOS API V2


void set_angle(hi_u32 utime)
{
    IoTGpioInit(HI_GPIO_IDX_12);

    hi_io_set_func(HI_GPIO_IDX_12,HI_IO_FUNC_GPIO_12_GPIO);

    IoTGpioSetDir(HI_GPIO_IDX_12, HI_GPIO_DIR_OUT);

    IoTGpioSetOutputVal(HI_GPIO_IDX_12,HI_GPIO_VALUE1);

    hi_udelay(utime);

    IoTGpioSetOutputVal(HI_GPIO_IDX_12,HI_GPIO_VALUE0);
    hi_udelay(20000-utime);
}

//左转
void engine_turn_left(void)
{
    for (int i = 0; i <10; i++) {
        set_angle(2500);
    }
}

//右转
void engine_turn_right(void)
{
    for (int i = 0; i <10; i++) {
        set_angle(500);
    }
}

//居中
void regress_middle(void)
{
    for (int i = 0; i <10; i++) {
        set_angle(1500);
    }
}

// // 入口函数
// static void MotorEntry(void)
// {
//     // 定义线程属性
//     osThreadAttr_t attr;
//     attr.name = "MotorTask";
//     attr.stack_size = 4096;
//     attr.priority = osPriorityNormal;

//     // 创建线程
//     if (osThreadNew(engine_turn_right, NULL, &attr) == NULL)
//     {
//         printf("[MotorExample] Falied to create PwmBuzTask!\n");
//     }
// }

// // 运行入口函数
// SYS_RUN(MotorEntry);